<?php
/**
 */
class MovimientodecajaTable extends Doctrine_Table {
	public function getMovimientos($cantidad, $orderBy, $idCliente){
		$result = null;
		try {
			//solves the orderby's null problem
			$defaultOrder = ' m.fInsert desc ';
			$orderBy = empty($orderBy) ? $defaultOrder : $orderBy;
			
			$cantidad = empty($cantidad) ? 15 : $cantidad;
			
			$q = $this->createQuery()
				->from(' Movimientodecaja m ')
				->innerJoin(' m.Mproveedor p ')
				->leftJoin(' m.Movimientoefectivo e ')
				->leftJoin(' m.Movimientocheque c ')
				->leftJoin(' m.Movimientotransferencia t ')
				->leftJoin(' m.Movimientochequecartera cc ')
				->leftJoin(' m.Movimientochequepropio cp ')
				->leftJoin(' cc.Movimientocheque chq ')
				->where(' 1=1 ')
				->limit($cantidad);
				
			if($idCliente > 0){
				$q->addWhere(' m.idProveedor=? ', $idCliente);
			}				
				
			$q->addOrderBy( $orderBy )
				->setHydrationMode(Doctrine::HYDRATE_ARRAY);
			
			$result = $q;
		} catch(Exception $e){
			throw $e;
		}
		return $result;
	}
	
	
	public function getChequesEnCartera(){
		$result = null;
		try {
			$defaultOrder = ' m.fechaDepositar desc ';
			$orderBy = empty($orderBy) ? $defaultOrder : $orderBy;
			
			$cantidad = empty($cantidad) ? 15 : $cantidad;
			
			$q = $this->createQuery()
				->from(' Movimientocheque m ')
				->innerJoin(' m.Mbanco ')
				->where(' NOT EXISTS (SELECT i.idCheque FROM Movimientochequecartera i where i.idCheque=m.id)  ');
				
			$q->addOrderBy( $orderBy )
				->setHydrationMode(Doctrine::HYDRATE_ARRAY);
			
			$result = $q;
		} catch(Exception $e){
			throw $e;
		}
		return $result;
	}
		
	
	public function borrarMovimiento($id){
		$result = null;
		try {
			$q = $this->createQuery()
				->delete(' Movimientoefectivo m ')
				->where(' m.idMovimientoCaja=? ',$id)
				->execute();
			
			$q = $this->createQuery()
				->delete(' Movimientocheque m ')
				->where(' m.idMovimientoCaja=? ',$id)
				->execute();

			$q = $this->createQuery()
				->delete(' Movimientotransferencia m ')
				->where(' m.idMovimientoCaja=? ',$id)
				->execute();

			$q = $this->createQuery()
				->delete(' Movimientochequecartera m ')
				->where(' m.idMovimientoCaja=? ',$id)
				->execute();

			$q = $this->createQuery()
				->delete(' Movimientochequepropio m ')
				->where(' m.idMovimientoCaja=? ',$id)
				->execute();

			$q = $this->createQuery()
				->delete(' Movimientodecaja m ')
				->where(' m.id=? ',$id)
				->execute();

		} catch(Exception $e){
			throw $e;
		}
		return $result;
	}	
}
?>